package JDBC;/*
* JDBC的概念和JDBC 中的对象
* 1.概念：Java databse connectivity:数据库连接
*  （1）使用Java语言操作数据库
*  （2）jdbc 的本质就是官方定义的一套操作所有关系型数据库的规则，也就是接口，
*       各个产商实现这套接口，提供数据库驱动jar包，我们就可以操作数据库，
*
* 2.使用步骤：
*   前提是获取jdbc的jar包(导包)
*   （1）注册驱动
*   （2）获取数据库连接对象
*   （3）定义SQL
*   （4）获取执行SQL语句的对象
*   （5）执行SQL语句
*   （6）处理结果
*   （7）释放资源
*
* 3.JDBC中的常用对象及作用
*   （1）OracleDriver：驱动管理对象
*       功能：注册驱动，告诉程序使用哪个jar包
*       通过驱动管理对象中的静态代码块注册DriverManager类
*       该类中提供了一个静态方法，获取数据库连接对象：
*       DriverManager.getConnection():
*       三个参数：
*       · url：指定数据库的链接路径
*       · 数据库的用户名
*       · 数据库的用户密码
*   （2）数据库连接对象
*       功能一：
*       获取SQL语句的对象
*          方法一： Statement createStatement()
*          方法二：PreparedStatement preparedStatement(String sql)
*       功能二：
*       事务管理：
*       开启事务，提交事务，回滚事务
*
*   （3）Statement：执行SQL语句对象
*       功能：
*           执行静态SQL语句：
*          -ResultSet executeQuery(string sql):执行DQL（查询） 语句
*           返回一个结果集的对象
*          -int executeUpdate(string sql):执行DML（增删改）语句
*           返回值表示受影响的行数
*          -boolean execute（string sql）:执行任意SQL语句
*           返回值表示SQL语句执行是否成功
*   （4）ResultSet：结果集对象,封装查询结果
*      注释：查询结果保存在游标中，通过ResultSet 获取游标中的值
*       -next（）：获取下一行
*       -getxxx(参数)：获取数据，xxx代表参数类型
*       参数：
*       int：代表的是列的序号
*       String：代表列的名称（一般常用）
* */

import java.sql.*;

public class Testo1_objAndSelect {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //（1）注册驱动
        Class .forName("oracle.jdbc.driver.OracleDriver");

        //（2）获取数据库连接对象
        Connection connection = DriverManager.getConnection(
                "jdbc:oracle:thin:@127.0.0.1:1521:orcl",
                "kz",
                "root"
        );

        //（3）定义SQL
        String sql="select * from teacher  where deptno=20 and gender='女'";

        //（4）获取执行SQL语句的对象
        Statement statement = connection.createStatement();

        //（5）执行SQL语句,返回结果集
        ResultSet resultSet = statement.executeQuery(sql);

        //（6）处理结果
        while (resultSet.next()){
            int tno = resultSet.getInt("tno");
            String tname = resultSet.getString("tname");
            String gender = resultSet.getString("gender");
            Date birthdate = resultSet.getDate("birthdate");
            System.out.println(tno+"=>"+tname+"=>"+gender+"=>"+birthdate);
        }

        //（7）释放资源
        resultSet.close();
        statement.close();
        connection.close();

    }
}
